<html>
<link href="../enzo.css" rel="stylesheet" type="text/css">
  <head>
    <title>Common Enzo Problems</title>
  </head>
<body> 

<!-- | -------------------------------------------------------------------- | -->

    <h1>Common Enzo Problems</h1>
    <p>It is almost inevitable that you will encounter problems when using a code
      which is as complicated and flexible as Enzo.  I will attempt to summarize
      the most commonly-encountered Enzo problems here.  Note that this page will
      be updated when problems are presented to the Enzo User Listserv 
      (<a href="mailto:enzo-users-l@ucsd.edu">enzo-users-l@ucsd.edu</a>).  We strongly
      suggest you to sign up to the listserv.  See the 
      <a href="../download/index.html">download page</a> for instructions on how to sign up
      to the listserv.</p>


    <p><b><font size="+1">Problem</font></b></p>

    <ul>
      <li><a href="#configure">When I type './configure' the code can't find gcc</a>
      <li><a href="#makefile">My version of Make cannot interpret the makefile</a>
      <li><a href="#compile_hdf5">The make process crashes because it can't find hdf5.h</a>
      <li><a href="#memory">Enzo keeps running out of memory</a>
      <li><a href="#mpiprob">Enzo keeps crashing with MPI errors</a>
       <li><a href="#inits_ran">Inits crashes with the error "J&gt;97 or J&lt;1"</a>
      <li><a href="#intel8">Problems with enzo F90 fft using the Linux Intel ifort 8.0 compiler</a>
    </ul>
    
    <p>&nbsp;</p>
    <hr WIDTH="100%">
    <p>&nbsp;</p>

    <p><b><font size="+1">Possible solutions</font></b></p>

    <ul>
      <li><a name="configure"></a><b>When I type './configure' the code can't find gcc</b><br>
	The configure code looks for gcc as the default preprocessor.  If gcc is not in your path
	or does not exist on your system, you can specify any C compiler as the precompiler by
	setting the environmental variable <tt>CC</tt>.  For example, if we wish to use ecc 
	(an intel C compiler) as the precompiler instead of gcc you would type
	<tt>"setenv CC ecc"</tt>.  This assumes that you are using csh or tcsh as your shell - if
	you use bash or ksh the syntax will be different.
	<br>&nbsp;<br>

      <li><a name="makefile"></a><b>My version of Make cannot interpret the makefile</b><br>
	Odds are that your system uses a different default version of make than 
	<a href="http://www.gnu.org/software/make/">GNU make</a>.  Try replacing all of your
	command-line calls to <tt>'make'</tt> with <tt>'gmake'</tt>, ie, <tt>"gmake show-config"</tt>
	instead of <tt>"make show-config"</tt>.  If this still doesn't work you may have to install
	GNU make yourself.
	<br>&nbsp;<br>

      <li><a name="compile_hdf5"></a><b>The make process crashes because it can't find hdf5.h</b><br>
	This typically means that your HDF 5 library is not where the configuration program thought
	it was at.  You may have to modify your configuration script in the <tt>config</tt> directory.
	Consult the file <tt>README.config</tt> in the enzo code bundle main directory.
	<br>&nbsp;<br>

      <li><a name="memory"></a><b>Enzo has run out of memory</b><br>
	Enzo's memory requirements can change somewhat over time.  This is especially pronounced when
	using the adaptive mesh refinement feature of the code - the memory usage can increase by a 
	factor of 10 between the beginning and end of the simulation!  Therefore, receiving system errors
	such as "process has exceeding paging space, bailing out" may happen at some point.
	<br>&nbsp;<br>
	If you are performing a unigrid simulation, you can minimize your memory requirements by
	making sure that the parameter <tt>Unigrid&nbsp;=&nbsp;1</tt> is in your parameter file.
	This reduces the memory required during simulation startup by a factor of two.  A good
	rule of thumb is that Enzo when run in unigrid mode needs 4 times the amount of total 
	memory (across all processors) than the data output size, though this may vary somewhat
	between systems due to peculiarities of the operating system.
	<br>&nbsp;<br>
	As mentioned before, the memory required for AMR simulations can increase significantly
	over time.  You may need to restart the simulation with more processors
	(on a distributed-memory machine) or request more memory (on a shared-memory machine).
	<br>&nbsp;<br>
	My apologies for the vague nature of the response to this issue.  Generally this is a 
	problem- and machine-dependent issue, so you may have to do some experimentation.
	<br>&nbsp;<br>

      <li><a name="mpiprob"></a><b>Enzo keeps crashing with MPI errors</b><br>
	When used as an adaptive-mesh code, Enzo can be very demanding of the communications
	subsystem in your machine.  The two most common issues are that Enzo runs out of 
	messages and that Enzo runs out of communication buffer memory.  Either of these
	problems will cause Enzo to crash immediately.  This can usually be rectified
	by finding the appropriate MPI environmental variable and increasing it to the maximum
	valule.  Unfortunately, these variable names (and max/default values) are
	strongly system-dependent, so you will have to
	consult the MPI documentation for your machine.
	<br>&nbsp;<br>

	<li><a name="inits_ran"></a><b>Inits crashes with the error "J&gt;97 or J&lt;1"</b><br>
	This suggests that there is a problem with the random seed which you have put in your
	inits parameter file using the parameter <b>PowerSpectrumRandomSeed</b>.  Inits requires 
	a negative random seed.  In addition, if you compile inits with 32-bit precision (32 bit objects
	and/or global precision and particle precision being single precision) you may encounter
	problems if your random seed is longer than 9 digits, which may result in your signed int
	being larger than 32 bits.  Suggested remedies:  Recompile the code using 64 bit precision
	throughout or reduce the random seed size to 
	<br>&nbsp;<br>


      <li><a href="intel8"><a><b>Problems with enzo F90 fft using the Linux Intel ifort 8.0 compiler</b><br>
	  It has been observed that the Intel ifort 8.0 compiler for Linux cannot compile the F90 fft routines.
	  This is an internal compiler issue and has been communicated to Intel.  Suggested remedies:  Use the F77
	  fft or use an earlier version of the Intel compilers.
	<br>&nbsp;<br>



	<br>&nbsp;<br>
	<br>&nbsp;<br>

    </ul>
  </ul>
    


<!-- <li><a name=""></a><b></b><br>  -->
















    <!-- | -------------------------------------------------------------------- | -->

    <p>&nbsp;</p>
    <p>
      <a href="dataviz_top.html">Previous - Data Visualization</a><br>
      <a href="index.html">Next - Index</a><br>
    </p>      



<p>&nbsp;</p>
<p>
<a href="../index.html">Go to the Enzo home page</a>
</p>
<hr WIDTH="100%">
<center>&copy; 2004 &nbsp; <a href="http://cosmos.ucsd.edu">Laboratory for Computational Astrophysics</a><br></center>
<center>last modified August 2004<br>
by <a href="mailto:bwoshea (AT) lanl.gov">B.W. O'Shea</a></center>

   
  </body>
</html>
